const book_name = [
"思想政治","必修一，经济生活","必修二，政治生活","必修三，文化生活","必修四，生活与哲学"
];
const contentJSON = [
{"book":1,"problem":"商品和服务价格的变动对生活和生产的影响","answer":"<ul><li>生活：价格变动会引起需求量的变动，对生活必需品的影响比较小，对高档耐用品的影响比较大。一种商品价格上升，会导致其替代品的需求量增加，其互补品的需求量减少。</li><li>生产：调节产量；调节生产要素的投入。</li></ul>"},
{"book":1,"problem":"消费心理","answer":"从众心理、求异心理、攀比心理、求实心理。"},
{"book":1,"problem":"消费观念","answer":"<ul><li>量入为出，适度消费；</li><li>避免盲从，理性消费；</li><li>保护环境，绿色消费；</li><li>勤俭节约，艰苦奋斗。</li></ul>"},
{"book":1,"problem":"生产和消费的关系","answer":"<ul><li>生产决定消费。生产决定消费的对象、方式、质量和水平，生产为消费创造动力。</li><li>消费对生产有反作用。<ul><li>消费是生产的最终目的和动力。</li><li>消费所形成的新的需要，对生产的调整和升级起着导向作用，一个新的消费热点的出现，往往能带动一个产业的出现和成长。</li><li>消费为生产创造出新的劳动力，提高劳动力的质量，提高劳动者的生产积极性。</li></ul></li></ul>"},
{"book":1,"problem":"公司经营成功的因素","answer":"<ul><li>制定正确的经营战略；</li><li>提高自主创新能力，依靠技术进步、科学管理等手段，形成竞争优势；</li><li>诚信经营，树立良好的信誉和企业形象。</li></ul>"},
{"book":1,"problem":"劳动者依法维护自身权益的途径","answer":"投诉、协商、申请调解、申请仲裁、向法院起诉。"},
{"book":1,"problem":"正确择业观","answer":"自主择业观、竞争就业观、职业平等观、多种方式就业观。"},
{"book":1,"problem":"新型劳动者和创业者应有的素质","answer":"良好的政治思想素质、道德品质，丰富的专业知识和技能，良好的身体素质和心理素质。"},
{"book":1,"problem":"实现社会公平的制度保证和重要举措","answer":"<ul><li>坚持和完善分配制度。</li><li>增加居民收入，着重保护劳动所得，鼓励勤劳守法致富，坚持在经济增长的同时实现居民收入同步增长、在劳动生产率提高的同时实现劳动报酬同步提高。</li><li>促进收入分配更合理、更有序。</li></ul>"},
{"book":1,"problem":"国家财政的作用","answer":"<ul><li>促进社会公平，改善人民生活；</li><li>促进资源合理配置；</li><li>促进国民经济平稳运行。</li></ul>"},
{"book":1,"problem":"市场调节","answer":"价格、供求、竞争。"},
{"book":1,"problem":"宏观调控手段","answer":"经济手段、法律手段、必要的行政手段。"},
{"book":1,"problem":"新发展理念","answer":"创新、协调、绿色、开放、共享。"},
{"book":1,"problem":"建设现代化经济体系的新要求","answer":"<ul><li>大力发展实体经济，</li><li>实施乡村振兴战略，</li><li>实施区域协调发展战略。</li></ul>"},
{"book":2,"problem":"公民参与政治生活应遵循的基本原则","answer":"<ul><li>坚持公民在法律面前一律平等的原则，</li><li>坚持权利和义务统一的原则，</li><li>坚持个人利益和国家利益相结合的原则。</li></ul>"},
{"book":2,"problem":"村民自治和城市居民自治的意义","answer":"<ul><li>实施村民自治和城市居民自治，扩大基层民主，是社会主义民主最为广泛而深刻的实践。</li><li>保障人民享有更多更切实的民主权利，是我国发展社会主义民主政治的重要内容，是人民当家作主的有效途径。</li></ul>"},
{"book":2,"problem":"政府基本职能","answer":"保障人民民主和维护国家长治久安，经济建设，文化建设，社会建设，生态文明建设。"},
{"book":2,"problem":"政府宗旨和工作的基本原则","answer":"<ul><li>宗旨：为人民服务。</li><li>基本原则：对人民负责。</li></ul>"},
{"book":2,"problem":"政府决策","answer":"科学决策、民主决策、依法决策。"},
{"book":2,"problem":"人大地位、职权","answer":"<ul><li>地位：人民代表大会是国家权力机关。</li><li>职权：立法权、决定权、任免权、监督权。</li></ul>"},
{"book":2,"problem":"人大代表职权","answer":"审议权、表决权、提案权、质询权。"},
{"book":2,"problem":"人民代表大会制度组织与活动原则","answer":"民主集中制（人大与人民、人大与其他国家机关、中央和地方）。"},
{"book":2,"problem":"党的地位、性质、宗旨、执政理念","answer":"<ul><li>地位：中国共产党是中国特色社会主义事业的领导核心。</li><li>性质：中国工人阶级的先锋队，中国人民和中华民族的先锋队。</li><li>宗旨：全心全意为人民服务。</li><li>执政理念：立党为公、执政为民。</li></ul>"},
{"book":2,"problem":"处理民族关系的基本原则","answer":"民族平等、民族团结、各民族共同繁荣。"},
{"book":2,"problem":"加强民族团结的重要性","answer":"民族的团结、民族的凝聚力是衡量一个国家综合国力的重要标志之一，是社会稳定的前提，是经济发展和社会进步的保证，是国家统一的基础。"},
{"book":2,"problem":"国际关系的决定因素","answer":"国家利益。国家间的共同利益是国家合作的基础，利益对立是引起国家冲突的根源。"},
{"book":2,"problem":"在国际关系中要坚定维护我国的国家利益","answer":"<ul><li>维护我国的国家利益就是维护广大人民的根本利益，是完全正当的、正义的。</li><li>在维护自身利益的同时，尊重他国的合理关切，在谋求本国发展中促进各国共同发展。</li></ul>"},
{"book":2,"problem":"当今时代的主题","answer":"和平与发展。"},
{"book":2,"problem":"我国独立自主的和平外交政策的基本点（基本立场、基本目标、宗旨、基本准则）","answer":"<ul><li>基本立场：独立自主。</li><li>基本目标：维护我国的主权、安全和发展利益，促进世界的和平与发展。</li><li>宗旨：维护世界和平，促进共同发展。</li><li>基本准则：和平共处五项原则。</li></ul>"},
{"book":3,"problem":"文化对人的影响（来源、表现、特点）","answer":"<ul><li>来源：特定的文化环境、各种形式的文化活动。</li><li>表现：影响人们的交往行为和交往方式；影响人们的实践活动、认识活动和思维方式。</li><li>特点：潜移默化、深远持久。</li></ul>"},
{"book":3,"problem":"优秀文化对人生的作用","answer":"丰富人的精神世界、增强人的精神力量、促进人的全面发展。"},
{"book":3,"problem":"大众传媒的功能","answer":"文化传递、沟通、共享。"},
{"book":3,"problem":"文化创新的源泉动力、途径","answer":"<ul><li>文化创新的源泉和动力：社会实践。</li><li>文化创新的途径：<ul><li>根本途径：立足社会实践；</li><li>基本途径：继承传统，推陈出新；面向世界，博采众长。</li></ul></li></ul>"},
{"book":3,"problem":"中华文化的作用","answer":"中华文化的力量深深熔铸在民族的生命力、创造力和凝聚力之中，是激励中国人民克服艰难险阻、战胜内忧外患、创造幸福生活的强大精神动力，也是激励每个中华儿女共同创造祖国美好明天的不竭力量之源。"},
{"book":3,"problem":"中华民族精神的基本内涵和核心","answer":"<ul><li>基本内涵：创造精神、奋斗精神、团结精神、梦想精神。</li><li>核心：爱国主义。</li></ul>"},
{"book":3,"problem":"弘扬和培育中华民族精神的意义","answer":"精神纽带、精神支柱、精神动力、中华民族之魂、火炬。"},
{"book":3,"problem":"如何培育和践行社会主义核心价值观","answer":"作为凝魂聚气、强基固本的基础工程，内化于心，外化于行。"},
{"book":3,"problem":"加强思想道德建设的要求","answer":"<ul><li>筑牢理想信念之基；</li><li>深入实施公民思想道德建设工程；</li><li>深化群众性精神文明创建活动；</li><li>弘扬科学精神，弘扬时代新风；</li><li>推进诚信建设和志愿服务制度化，强化社会责任意识、规则意识、奉献意识。</li></ul>"},
{"book":4,"problem":"规律客观性原理和方法论","answer":"<ul><li>原理：<ul><li>规律是客观的，是不以人的意志为转移的，不能被创造也不能被消灭。</li><li>规律是普遍的，自然界、人类社会和人的思维的变化发展都是有规律的。</li></ul></li><li>方法论：<ul><li>尊重规律，按客观规律办事；</li><li>人可以发挥主观能动性，在认识和把握规律的基础上，根据规律发生作用的条件和形式利用规律，改造客观世界，造福于人类。</li></ul></li></ul>"},
{"book":4,"problem":"尊重规律与发挥主观能动性的关系的原理和方法论","answer":"<ul><li>原理：<ul><li>尊重规律是发挥主观能动性的基础；</li><li>人在客观规律面前不是无能为力，可以发挥主观能动性，在认识和把握规律的基础上，根据规律发生作用的条件和形式利用规律，改造客观世界，造福于人类。</li></ul></li><li>方法论：既要尊重规律，又要发挥主观能动性，要把发挥主观能动性和尊重客观规律有机结合起来。</li></ul>"},
{"book":4,"problem":"意识的作用","answer":"<ul><li>人能够能动地认识世界，意识活动的特点是目的性、自觉选择性和主动创造性。</li><li>人能够能动地改造世界，意识对改造客观世界具有指导作用，意识对人体生理活动具有调节和控制作用。</li></ul>"},
{"book":4,"problem":"一切从实际出发","answer":"<ul><li>物质决定意识，要求我们一切从实际出发，</li><li>既要尊重规律，又要发挥主观能动性，要把发挥主观能动性和尊重客观规律有机结合起来。</li></ul>"},
{"book":4,"problem":"实践是认识的基础","answer":"<ul><li>实践是认识的来源，</li><li>实践是认识的动力，</li><li>实践是检验认识正确性的唯一标准，</li><li>实践是认识的目的和归宿。</li></ul>"},
{"book":4,"problem":"整体和部分的辩证关系原理和方法论","answer":"<ul><li>原理：<ul><li>整体居于主导地位，统率着部分。</li><li>整体由部分构成，部分影响整体，关键部分甚至对整体起决定作用。</li></ul></li><li>方法论：<ul><li>树立全局观念，立足整体，统筹全局，实现整体的最优目标；</li><li>搞好局部，用局部的发展推动整体的发展。</li></ul></li></ul>"},
{"book":4,"problem":"系统优化的方法","answer":"<ul><li>着眼于事物的整体性，遵循系统内部结构的有序性，注重系统内部结构的优化趋向。</li><li>用综合的思维方法来认识事物，着眼于事物的整体，统筹考虑，优化组合，最终形成关于这一事物的完整准确的认识。</li></ul>"},
{"book":4,"problem":"矛盾的特殊性原理和方法论","answer":"<ul><li>原理：不同事物有不同矛盾，同一事物在发展的不同过程和阶段上有不同的矛盾，同一事物中的不同矛盾、同一矛盾的不同方面各有其特殊性。</li><li>方法论：具体问题具体分析。</li></ul>"},
{"book":4,"problem":"矛盾的普遍性和特殊性的辩证关系","answer":"<ul><li>矛盾的普遍性与特殊性相互联结。一方面，普遍性寓于特殊性之中，并通过特殊性表现出来；另一方面，特殊性离不开普遍性。</li><li>矛盾的普遍性和特殊性在不同场合可以相互转化。</li></ul>"},
{"book":4,"problem":"主要矛盾和次要矛盾、矛盾的主要方面和次要方面的辩证关系要求","answer":"坚持两点论和重点论的统一。"},
{"book":4,"problem":"人民群众是历史的创造者原理和方法论（群众观点和群众路线）","answer":"<ul><li>原理：人民群众是社会历史的主体，是历史的创造者。人民群众是社会物质财富的创造者，是社会精神财富的创造者，是社会变革的决定力量。</li><li>方法论：坚持群众观点和群众路线。<ul><li>群众观点：相信人民群众自己解放自己，全心全意为人民服务，一切向人民群众负责，虚心向人民群众学习。</li><li>群众路线：一切为了群众，一切依靠群众，从群众中来，到群众中去。</li></ul></li></ul>"},
{"book":4,"problem":"实现人生价值的条件和途径","answer":"<ul><li>在劳动和奉献中创造价值。</li><li>在个人和社会的统一中实现价值。</li><li>在砥砺自我中走向成功：<ul><li>充分发挥主观能动性，顽强拼搏、自强不息；</li><li>全面提高个人素质；</li><li>有坚定的理想信念和正确价值观的指引。</li></ul></li></ul>"}
];

var solution_showed;

function all_killed(){
    $('#all_killed_modal').modal('show');
    do_after_killed();
}

function load_problem(){
    if (now_position==ranges.length){
        all_killed();
        now_position=0;
    }
    var nowcontent=contentJSON[ranges[now_position]];
    $("#problem_no").text(ranges[now_position]+1);
    $("#source_book").text(book_name[nowcontent["book"]]);
    $("#problem").text("问题："+nowcontent["problem"]+"。");
    solution_text=nowcontent["answer"];
    solution_text=solution_text.replace(/\n/g,"<br />");
    $("#solution").html(solution_text);
    solution_showed=0;
    $("#display_sol").text("显示答案");
    $("#solution").css("visibility","hidden");
    now_position++;
    $('#main_progress').progress({
        total: ranges.length,
        value: now_position,
        text: {active: "已背 {value} / {total}"}
    });
}

function add_to_fav(){
    //console.log(ranges[now_position-1]+1);
    favs.add(ranges[now_position-1]+1);
    var tarr=Array.from(favs);
    tarr.sort(function(a,b){
         return a-b;
    });
    //console.log(tarr);
    favs=new Set(tarr);
    update_fav_text();
    $("#add_to_list").removeClass("blue");
    $("#add_to_list").addClass("green");
    $("#add_to_list").text("加入成功");
    setTimeout(function(){
        $("#add_to_list").removeClass("green");
        $("#add_to_list").addClass("blue");
        $("#add_to_list").text("加入收藏");
    },500);
}

function import_fav_text(){
    var new_fav_text=$("#fav_textarea").val();
    var reg = /[0-9]+/g;
    var num_list = new_fav_text.match(reg);
    //console.log(num_list);
    favs=new Set();
    if (num_list==null)
        return;
    new_fav_list=new Array();
    for (x of num_list){
        y=parseInt(x);
        if (y>0 && y<=contentJSON.length)
            new_fav_list.push(y);
    }
    new_fav_list.sort(function(a,b){
         return a-b;
    });
    //console.log(new_fav_list);
    favs=new Set(new_fav_list);
    update_fav_text();
    $("#import_fav").removeClass("blue");
    $("#import_fav").addClass("green");
    $("#import_fav").text("导入成功");
    setTimeout(function(){
        $("#import_fav").removeClass("green");
        $("#import_fav").addClass("blue");
        $("#import_fav").text("导入收藏");
    },500);
}

function update_fav_text(){
    var tstr=Array.from(favs).join(", ");
    $("#fav_textarea").val(tstr);
}

function GetQueryString(name){
     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if (r!=null)
        return r[2];
     return null;
}

$(document).ready(function() {
    //console.log(ranges.length);
    solution_showed=0;
    $('#main_progress').progress({
        total: ranges.length,
        value: 0,
        text: {active: "已背 {value} / {total}"}
    });
    
    load_problem();

    $("#display_sol").click(function(event) {
        if (solution_showed){
            solution_showed=0;
            $("#display_sol").text("显示答案");
            $("#solution").css("visibility","hidden");
        }
        else {
            solution_showed=1;
            $("#display_sol").text("隐藏答案");
            $("#solution").css("visibility","visible");
        }
    });
    $("#add_to_list").click(function(event) {
        add_to_fav();
    });
    $("#next_prob").click(function(event) {
        load_problem();
    });
    $("#import_fav").click(function(event) {
        import_fav_text();
    });
    $("#clear_fav").click(function(event) {
        $("#fav_textarea").val("");
        favs=new Set();
        $("#clear_fav").removeClass("blue");
        $("#clear_fav").addClass("green");
        $("#clear_fav").text("清空成功");
        setTimeout(function(){
            $("#clear_fav").removeClass("green");
            $("#clear_fav").addClass("blue");
            $("#clear_fav").text("清空收藏");
        },500);
    });
    $("#copy_fav").click(function(event) {
        $("#fav_textarea").select();
        var ok=false;
        if (document.execCommand){
            document.execCommand('copy');
            ok=true;
        }
        $("#fav_textarea").blur();
        if (ok){
            $("#copy_fav").removeClass("blue");
            $("#copy_fav").addClass("green");
            $("#copy_fav").text("复制成功");
            setTimeout(function(){
                $("#copy_fav").removeClass("green");
                $("#copy_fav").addClass("blue");
                $("#copy_fav").text("复制到剪贴板");
            },500);
        }
    });
    $("#prac_fav").click(function(event) {
        var tarr=Array.from(favs);
        if (!(tarr.length)){
            $("#empty_fav_warn_modal").modal("show");
            return;
        }
        tarr=tarr.map(function(x){return x-1;});
        var tstr=JSON.stringify(tarr);
        var trand;
        tstr=btoa(tstr);
        $("#ran_modal").modal({
            onApprove:function(){random_choose_res=1;},
            onDeny:function(){random_choose_res=2;},
            onHidden:function(){
                if (random_choose_res==1)
                    trand="1";
                else
                    trand="0";
                random_choose_res=0;
                //console.log("favor.html?fav="+tstr+"&rand="+trand);
                window.location.href="favor.html?fav="+tstr+"&rand="+trand;
            }
        });
        $("#ran_modal").modal("show");
    });
});
